<?php
//------------------------------------------------------------ Contraintes d'accès de la page

	// on vérifie que cette page est appelée à partir de l'index et que l'utilisateur a le droit d'édition
	if(isset($_SESSION) && ($GLOBALS['USER']['level'] >= 4 || $GLOBALS['USER']['admin'])){

		// l'identifiant de la donnée à supprimer est indiqué par un entier
		if(isset($_GET['id']) && numericInt($_GET['id'])){
		
			$nb_visites = valueExists((int)$_GET['id'], "CODEVISITEDANSNATURE", "visite_dans_nature", $connexion);
			
			if($nb_visites == 1){ // la visite dans la nature à éditer existe et son identifiant est unique
	
?>
<?php
//------------------------------------------------------------ Valeur des champs avant saisie

	// récupération des informations de la visite dans la nature
	$query_recuperation_visite = "SELECT v.DATEVISITE, v.CODEMILIEUBIOLOGIQUE, c.COORDONNEEX, c.COORDONNEEY, c.COORDONNEEZ, v.CODECOMMUNE, v.DESCRIPTION, v.RAPPORT, v.COMMENTAIRE, a.CODETAXON, a.CODEETATPHENOLOGIQUE, a.POPULATION, t.CODETAXON ";
	$query_recuperation_visite .= "FROM visite_dans_nature v ";
	$query_recuperation_visite .= "LEFT JOIN coordonnees c ON v.CODECOORDONNEES = c.CODECOORDONNEES ";
	$query_recuperation_visite .= "LEFT JOIN a_ete_vu_taxon a ON a.CODEVISITEDANSNATURE = v.CODEVISITEDANSNATURE ";
	$query_recuperation_visite .= "LEFT JOIN entree en ON v.CODEVISITEDANSNATURE = en.CODEVISITEDANSNATURE ";
	$query_recuperation_visite .= "LEFT JOIN sachet_graines sa ON en.SAC_CODESACHETGRAINE = sa.CODESACHETGRAINE ";
	$query_recuperation_visite .= "LEFT JOIN semis se ON en.SEM_CODESEMIS = se.CODESEMIS ";
	$query_recuperation_visite .= "LEFT JOIN touffe tou ON en.TOU_CODETOUFFE = tou.CODETOUFFE ";
	$query_recuperation_visite .= "LEFT JOIN taxon t ON t.CODETAXON = sa.CODETAXON OR t.CODETAXON = se.CODETAXON OR t.CODETAXON = tou.CODETAXON ";
	$query_recuperation_visite .= "WHERE v.CODEVISITEDANSNATURE = ".$_GET['id']." ";
	
	$result_recuperation_visite = mysql_query($query_recuperation_visite, $connexion) or logError("RECUPERATION VISITE DANS NATURE-".$query_recuperation_visite."-".mysql_error());
	
	// etant donné que certains liens avec des tables ne sont pas obligatoires, on créé les tableaux avant de traiter la requête
	$dv_taxon = array();
	$dv_etat = array();
	$dv_population = array();
	$recoltes = false; // Indique que  la commande a commencé à être livrée
	$taxonsRecoltes = array(); // tableau contenant la liste des taxons récoltés
	while($tab_recuperation_visite = mysql_fetch_row($result_recuperation_visite)){
	
		$time = strtotime($tab_recuperation_visite[0]);
		$dv_date_jour = date("j", $time); // valeur du champ jour de la date (edt_date_jour)
		$dv_date_mois = date("n", $time); // valeur du champ mois de la date (edt_date_mois)
		$dv_date_annee = date("Y", $time); // valeur du champ année de la date (edt_date_annee)
		$dv_milieu = $tab_recuperation_visite[1]; // valeur du champ milieu (edt_milieu)
		$dv_gps_x = $tab_recuperation_visite[2]; // valeur du champ postion gps X (edt_gps_x)
		$dv_gps_y = $tab_recuperation_visite[3]; // valeur du champ postion gps Y (edt_gps_y)
		$dv_gps_z = $tab_recuperation_visite[4]; // valeur du champ postion gps Z (edt_gps_z)
		$dv_commune = $tab_recuperation_visite[5]; // valeur du champ lieu (edt_commune)
		$dv_description = $tab_recuperation_visite[6]; // valeur du champ description (edt_description)
		$dv_rapport = $tab_recuperation_visite[7]; // valeur du champ rapport (edt_rapport)
		$dv_commentaire = $tab_recuperation_visite[8]; // valeur du champ commentaire (edt_commentaire)
		if(!is_null($tab_recuperation_visite[9])){
			$dv_taxon[$tab_recuperation_visite[9]."-".$tab_recuperation_visite[10]] = $tab_recuperation_visite[9]; // valeur des champs taxons observés (edt_taxon[])
			$dv_etat[$tab_recuperation_visite[9]."-".$tab_recuperation_visite[10]] = $tab_recuperation_visite[10]; // valeur des champs états des taxons observés (edt_etat[])
			$dv_population[$tab_recuperation_visite[9]."-".$tab_recuperation_visite[10]] = $tab_recuperation_visite[11]; // valeur des champs population des taxons observés (edt_population[])
		}
		
		if(!is_null($tab_recuperation_visite[12])){
			$recoltes = true;
			$taxonsRecoltes[$tab_recuperation_visite[12]] = $tab_recuperation_visite[12];
			
		}
		
		$dateOrigine = strtotime($tab_recuperation_visite[0]);
	}
	
	mysql_free_result($result_recuperation_visite);
	
	// Valeurs possibles du champ edt_commune
	$query_recuperation_communes = "SELECT c.CODECOMMUNE AS id, c.NOMCOMMUNE AS commune, p.NOMPAYS AS pays ";
	$query_recuperation_communes .= "FROM commune c ";
	$query_recuperation_communes .= "INNER JOIN pays p ON p.CODEPAYS = c.CODEPAYS ";
	$query_recuperation_communes .= "ORDER BY commune, pays";
	
	$result_recuperation_communes =  mysql_query($query_recuperation_communes, $connexion) or logError("RECUPERATION COMMUNES-".$query_recuperation_communes."-".mysql_error());

	$selectCommunes = array(); // on créé un tableau qui contient la liste des communes ainsi que les informations de chacun
	$nb_communes = 0;
	while($tab_recuperation_communes = mysql_fetch_assoc($result_recuperation_communes)){
		$selectCommunes[$nb_communes] = $tab_recuperation_communes;
		$nb_communes++;
	}
	
	mysql_free_result($result_recuperation_communes);
	
	// Valeurs possibles du champ edt_milieu
	$query_recuperation_milieux = "SELECT CODEMILIEUBIOLOGIQUE AS id, NOMMILIEUBIOLOGIQUE AS nom FROM milieu_biologique ORDER BY nom ";
	
	$result_recuperation_milieux =  mysql_query($query_recuperation_milieux, $connexion) or logError("RECUPERATION MILIEUX-".$query_recuperation_milieux."-".mysql_error());

	$selectMilieux = array(); // on créé un tableau qui contient la liste des milieux biologiques ainsi que les informations de chacun
	$nb_milieux = 0;
	while($tab_recuperation_milieux = mysql_fetch_assoc($result_recuperation_milieux)){
		$selectMilieux[$nb_milieux] = $tab_recuperation_milieux;
		$nb_milieux++;
	}
	
	mysql_free_result($result_recuperation_milieux);
	
	// Valeurs possibles du champ edt_etat
	$query_recuperation_etats = "SELECT CODEETATPHENOLOGIQUE AS id, NOMETATPHENOLOGIQUE AS nom FROM etat_phenologique ORDER BY nom ";
	
	$result_recuperation_etats =  mysql_query($query_recuperation_etats, $connexion) or logError("RECUPERATION ETATS PHENOLOGIQUE-".$query_recuperation_etats."-".mysql_error());

	$selectEtats = array(); // on créé un tableau qui contient la liste des états phénologiques ainsi que les informations de chacun
	$nb_etats = 0;
	while($tab_recuperation_etats = mysql_fetch_assoc($result_recuperation_etats)){
		$selectEtats[$nb_etats] = $tab_recuperation_etats;
		$nb_etats++;
	}
	
	mysql_free_result($result_recuperation_etats);
	
	// Valeurs possibles du champ edt_taxon
	$query_recuperation_taxons = "SELECT t.CODETAXON AS id, f.NOMFAMILLE AS famille, g.NOMGENRE AS genre, e.NOMESPECE AS espece, v.NOMVARIETE AS variete ";
	$query_recuperation_taxons .= "FROM taxon t ";
	$query_recuperation_taxons .= "INNER JOIN classification c ON c.CODECLASSIFICATION = t.CODECLASSIFICATION ";
	$query_recuperation_taxons .= "LEFT JOIN est_de_famille l1 INNER JOIN famille f ON f.CODEFAMILLE = l1.CODEFAMILLE ON l1.CODETAXON = t.CODETAXON AND l1.CODECLASSIFICATION = t.CODECLASSIFICATION ";
	$query_recuperation_taxons .= "LEFT JOIN appartient_a_genre l2 INNER JOIN genre g ON g.CODEGENRE = l2.CODEGENRE ON l2.CODETAXON = t.CODETAXON AND l2.CODECLASSIFICATION = t.CODECLASSIFICATION ";
	$query_recuperation_taxons .= "LEFT JOIN est_de_espece l3 INNER JOIN espece e ON e.CODEESPECE = l3.CODEESPECE ON l3.CODETAXON = t.CODETAXON AND l3.CODECLASSIFICATION = t.CODECLASSIFICATION ";
	$query_recuperation_taxons .= "LEFT JOIN a_comme_variete l4 INNER JOIN variete v ON v.CODEVARIETE = l4.CODEVARIETE ON l4.CODETAXON = t.CODETAXON AND l4.CODECLASSIFICATION = t.CODECLASSIFICATION ";
	$query_recuperation_taxons .= "ORDER BY famille, genre, espece, variete ";
	
	$result_recuperation_taxon =  mysql_query($query_recuperation_taxons, $connexion) or logError("RECUPERATION TAXONS-".$query_recuperation_taxons."-".mysql_error());

	$selectTaxons = array(); // on créé un tableau qui contient la liste des taxons ainsi que les informations de chacun
	$nb_taxons = 0;
	while($tab_recuperation_taxons = mysql_fetch_assoc($result_recuperation_taxon)){
		$selectTaxons[$nb_taxons] = $tab_recuperation_taxons;
		$nb_taxons++;
	}
	
	mysql_free_result($result_recuperation_taxon);
	
?>
<?php
//------------------------------------------------------------ Traitements si le formulaire a été envoyé

/********************************* Règles :

	- la date et le milieu où se déroule la visite, doivent être indiqués
	- le milieu et la commune (si indiquée) doivent exister dans la BDD

*****************************************/

	$statut = array(); // indique le statut du traitement du formulaire (echec ou succes) - tableau contenant les messages à afficher
	$erreur = false; // indique si une erreur a été rencontrée lors du traitement

	trimTabByKey($_POST, "edt_"); // appel à la fonction trimTabByKey() définie dans fonctions.php
	
	//---------------------------------- Contrôle des données ----------------------------------
	
	if(isset($_POST['form_sent'])){ // si le formulaire est envoyé
	
		// Contrôle des données de la date
		if(isset($_POST['edt_date_jour']) && is_string($_POST['edt_date_jour']) && isset($_POST['edt_date_mois']) && is_string($_POST['edt_date_mois']) && isset($_POST['edt_date_annee']) && is_string($_POST['edt_date_annee'])){
			if(numericInt($_POST['edt_date_jour']) && numericInt($_POST['edt_date_mois']) && !emptyString($_POST['edt_date_annee']) && numericInt($_POST['edt_date_annee'])){
				if(checkdate($_POST['edt_date_mois'], $_POST['edt_date_jour'], $_POST['edt_date_annee'])){
					if($recoltes && strtotime($_POST['edt_date_annee']."-".$_POST['edt_date_mois']."-".$_POST['edt_date_jour']) != $dateOrigine){
						$statut[] = "La date de la visite ne peut être changée si des végétaux ont été récoltés";
						$erreur = true;
					}else{
						$dv_date_jour = $_POST['edt_date_jour'];
						$dv_date_mois = $_POST['edt_date_mois'];
						$dv_date_annee = $_POST['edt_date_annee'];
					}
				}else{
					$statut[] = "Date de la visite incorrecte";
					$erreur = true;
				}
			}else{
				$statut[] = "Format de la date de la visite incorrect";
				$erreur = true;
			}
		}else{
			$statut[] = "Aucune date de la visite indiquée";
			$erreur = true;
		}
		
		// Contrôle des données du milieu bilogique
		if(isset($_POST['edt_milieu']) && is_string($_POST['edt_milieu'])){
			if(!numericInt($_POST['edt_milieu'])){
				$statut[] = "Format du milieu incorrect";
				$erreur = true;
			}else{
				if(valueExists((int)$_POST['edt_milieu'], "CODEMILIEUBIOLOGIQUE", "milieu_biologique", $connexion) == 1){
					$dv_milieu = $_POST['edt_milieu'];
				}else{
					$statut[] = "Le milieu indiqué n'existe pas";
					$erreur = true;
				}
			}
		}else{
			$statut[] = "Aucun milieu indiqué";
			$erreur = true;
		}
		
		// Contrôle des données du lieu
		if(isset($_POST['edt_commune']) && is_string($_POST['edt_commune'])){
			if(!numericInt($_POST['edt_commune']) && $_POST['edt_commune'] != "none"){
				$statut[] = "Format du lieu incorrect";
				$erreur = true;
			}else{
				if($_POST['edt_commune'] != "none"){
					if(valueExists((int)$_POST['edt_commune'], "CODECOMMUNE", "commune", $connexion) == 1){
						$dv_commune = $_POST['edt_commune'];
					}else{
						$statut[] = "Le lieu indiqué n'existe pas";
						$erreur = true;
					}
				}
			}
		}else{
			$statut[] = "Aucun lieu indiqué";
			$erreur = true;
		}
		
		// Contrôle des données de la position GPS
		$gpsIndique = false; // indique si oui ou non la position GPS est indiquée
		if(isset($_POST['edt_gps_x']) && is_string($_POST['edt_gps_x']) && isset($_POST['edt_gps_y']) && is_string($_POST['edt_gps_y']) && isset($_POST['edt_gps_z']) && is_string($_POST['edt_gps_z'])){
			if(emptyString($_POST['edt_gps_x']) && emptyString($_POST['edt_gps_y']) && emptyString($_POST['edt_gps_z'])){
				$dv_gps_x = $_POST['edt_gps_x'];
				$dv_gps_y = $_POST['edt_gps_y'];
				$dv_gps_z = $_POST['edt_gps_z'];
			}else if((!emptyString($_POST['edt_gps_x']) && is_numeric($_POST['edt_gps_x'])) && (!emptyString($_POST['edt_gps_y']) && is_numeric($_POST['edt_gps_y'])) && (emptyString($_POST['edt_gps_z']) || is_numeric($_POST['edt_gps_z']))){
				$dv_gps_x = $_POST['edt_gps_x'];
				$dv_gps_y = $_POST['edt_gps_y'];
				$dv_gps_z = $_POST['edt_gps_z'];
				$gpsIndique = true;
			}else{
				$statut[] = "Position GPS mal indiquée";
				$erreur = true;
			}
		}else{
			$statut[] = "Aucune position GPS indiquée";
			$erreur = true;
		}
		
		// Contrôle des données du rapport
		if(isset($_POST['edt_rapport']) && is_string($_POST['edt_rapport'])){ 
			$dv_rapport = $_POST['edt_rapport'];
		}else{
			$statut[] = "Aucun rapport indiqué";
			$erreur = true;
		}
		
		// Contrôle des données des taxons observés
		if(isset($_POST['edt_nbTaxons']) && is_string($_POST['edt_nbTaxons']) && isset($_POST['edt_taxon']) && is_array($_POST['edt_taxon']) && isset($_POST['edt_etat']) && is_array($_POST['edt_etat']) && is_array($_POST['edt_taxon']) && isset($_POST['edt_population']) && is_array($_POST['edt_population'])){
			$nbTaxons = count($_POST['edt_taxon']);
			$nbEtats = count($_POST['edt_etat']);
			$nbPopulations = count($_POST['edt_population']);
			if(numericInt($_POST['edt_nbTaxons']) && $_POST['edt_nbTaxons'] == $nbTaxons && $_POST['edt_nbTaxons'] == $nbEtats && $_POST['edt_nbTaxons'] == $nbPopulations){
				if(uniqueCouples($_POST['edt_etat'], $_POST['edt_taxon'])){
					if(valuesInArray($taxonsRecoltes, $_POST['edt_taxon'])){
						$new_dv_taxon = array();
						$new_dv_etat = array();
						$new_dv_population = array();
						$errTax = false;
						for($i=0; $i<$_POST['edt_nbTaxons']; $i++){
							if(!numericInt($_POST['edt_taxon'][$i])){
								$statut[] = "Format du taxon (ligne ".($i+1).") incorrect";
								$erreur = true;
								$errTax = true;
							}else{
								if(valueExists((int)$_POST['edt_taxon'][$i], "CODETAXON", "taxon", $connexion) == 1){
									$new_dv_taxon[$i] = $_POST['edt_taxon'][$i];
								}else{
									$statut[] = "Un des taxons n'existe pas";
									$erreur = true;
									$errTax = true;
								}
							}
							if(!numericInt($_POST['edt_etat'][$i])){
								$statut[] = "Format de l'état du taxon (ligne ".($i+1).") incorrect";
								$erreur = true;
								$errTax = true;
							}else{
								if(valueExists((int)$_POST['edt_etat'][$i], "CODEETATPHENOLOGIQUE", "etat_phenologique", $connexion) == 1){
									$new_dv_etat[$i] = $_POST['edt_etat'][$i];
								}else{
									$statut[] = "Un des états du taxon n'existe pas";
									$erreur = true;
									$errTax = true;
								}
							}
							if((numericInt($_POST['edt_population'][$i]) && $_POST['edt_population'][$i] > 0) || emptyString($_POST['edt_population'][$i])){
								$new_dv_population[$i] = $_POST['edt_population'][$i];
							}else{
								$statut[] = "Format de la population de taxon (ligne ".($i+1).") incorrect";
								$erreur = true;
								$errTax = true;
							}
						}
						if(!$errTax){
							$dv_taxon = $new_dv_taxon;
							$dv_etat = $new_dv_etat;
							$dv_population = $new_dv_population;
						}
					}else{
						$statut[] = "Les taxons récoltés ne peuvent être supprimés";
						$erreur = true;
					}
				}else{
					$statut[] = "Un couple taxon/état est indiqué plusieurs fois";
					$erreur = true;
				}
			}else{
				$statut[] = "Taxons mal indiqués";
				$erreur = true;
			}
		}
		
		// Contrôle des données de la description
		if(isset($_POST['edt_description']) && is_string($_POST['edt_description'])){ 
			$dv_description = $_POST['edt_description'];
		}else{
			$statut[] = "Aucune description indiquée";
			$erreur = true;
		}
		
		// Contrôle des données du commentaire
		if(isset($_POST['edt_commentaire']) && is_string($_POST['edt_commentaire'])){ 
			$dv_commentaire = $_POST['edt_commentaire'];
		}else{
			$statut[] = "Aucun commentaire indiqué";
			$erreur = true;
		}
		
		//---------------------------------- Modification de la visite ----------------------------------
	
		if(!$erreur){ // aucune erreur n'a été rencontrée jusqu'ici
		
			if($gpsIndique){ // La position GPS est indiquée
			
				// on vérifie si les coordonnées GPS existent déjà
				$query_recuperation_gps_existe = "SELECT CODECOORDONNEES FROM coordonnees ";
				$query_recuperation_gps_existe .= "WHERE COORDONNEEX = ".$_POST['edt_gps_x']." ";
				$query_recuperation_gps_existe .= "AND COORDONNEEY = ".$_POST['edt_gps_y']." ";
				if(emptyString($_POST['edt_gps_z'])){
					$query_recuperation_gps_existe .= "AND COORDONNEEZ IS NULL ";
				}else{
					$query_recuperation_gps_existe .= "AND COORDONNEEZ = ".$_POST['edt_gps_z']." ";
				}
				
				$result_recuperation_gps_existe = mysql_query($query_recuperation_gps_existe, $connexion) or logError("RECUPERATION COORDONNEES EXISTE-".$query_recuperation_gps_existe."-".mysql_error());
				if(mysql_num_rows($result_recuperation_gps_existe) > 0){ // les coordonnées GPS existent
					$tab_recuperation_gps_existe = mysql_fetch_row($result_recuperation_gps_existe);
					$idGPS = $tab_recuperation_gps_existe[0];
					$result_ajout_gps = true;
				}else{ // les coordonnées GPS n'existent pas
					// On créé les nouvelles coordonnées GPS
					$query_ajout_gps = "INSERT INTO coordonnees(COORDONNEEX, COORDONNEEY, COORDONNEEZ) ";
					$query_ajout_gps .= "VALUES( ".$_POST['edt_gps_x']." , ".$_POST['edt_gps_y']." ";
					if(emptyString($_POST['edt_gps_z'])){
						$query_ajout_gps .= ", NULL ";
					}else{
						$query_ajout_gps .= ", ".$_POST['edt_gps_z']." ";
					}
					$query_ajout_gps .= ") ";
				
					$result_ajout_gps = mysql_query($query_ajout_gps, $connexion) or logError("CREATION COORDONNEES-".$query_ajout_gps."-".mysql_error());
					
					if($result_ajout_gps === true){
						$idGPS = valueMax("CODECOORDONNEES", "coordonnees", $connexion);
					}else{
						$statut[] = "Erreur critique lors de la modification de la visite dans la nature";
						$erreur = true;
					}
				}
				mysql_free_result($result_recuperation_gps_existe);
				
			}else{
				$idGPS = "NULL";
				$result_ajout_gps = true;
			}
			
			if($result_ajout_gps === true){
			
				// Modification dans la table VISITE_DANS_NATURE
				$query_modification_visite = "UPDATE visite_dans_nature ";
				$query_modification_visite .= "SET DATEVISITE = '".$_POST['edt_date_annee']."-".$_POST['edt_date_mois']."-".$_POST['edt_date_jour']."' , DESCRIPTION = ".mysqlString($_POST['edt_description'])." , RAPPORT = ".mysqlString($_POST['edt_rapport'])." , COMMENTAIRE = ".mysqlString($_POST['edt_commentaire'])." ";
				if($_POST['edt_commune'] == "none"){
					$query_modification_visite.= ", CODECOMMUNE = NULL ";
				}else{
					$query_modification_visite.= ", CODECOMMUNE = ".$_POST['edt_commune']." ";
				}
				$query_modification_visite.= ", CODEMILIEUBIOLOGIQUE = ".$_POST['edt_milieu']." ";
				$query_modification_visite.= ", CODECOORDONNEES = ".$idGPS." ";
				$query_modification_visite .= "WHERE CODEVISITEDANSNATURE = ".$_GET['id']." ";
				
				$result_modification_visite = mysql_query($query_modification_visite, $connexion) or logError("CREATION VISITE DANS NATURE-".$query_modification_visite."-".mysql_error());
			
				if($result_modification_visite === true){
				
					// Suppression des anciens liens avec les propriétés
					$query_suppression_lien_visite_taxon = "DELETE FROM a_ete_vu_taxon WHERE CODEVISITEDANSNATURE = ".$_GET['id']." ";
					
					$result_suppression_lien_visite_taxon = mysql_query($query_suppression_lien_visite_taxon, $connexion) or logError("SUPPRESSION LIENS VISITE / TAXON-".$query_suppression_lien_visite_taxon."-".mysql_error());
				
					if($result_suppression_lien_visite_taxon === true){
				
						// Ajout des informations dans les tables A_ETE_VU_TAXON
						for($i=0; $i<$_POST['edt_nbTaxons']; $i++){
						
							$query_ajout_lien_visite_taxon = "INSERT INTO a_ete_vu_taxon(CODETAXON, CODEETATPHENOLOGIQUE, CODEVISITEDANSNATURE, POPULATION) ";
							$query_ajout_lien_visite_taxon .= "VALUES(".$_POST['edt_taxon'][$i]." , ".$_POST['edt_etat'][$i]." , ".$_GET['id']." ";
							if(emptyString($_POST['edt_population'][$i])){
								$query_ajout_lien_visite_taxon .= ", NULL ";
							}else{
								$query_ajout_lien_visite_taxon .= ", ".$_POST['edt_population'][$i]." ";
							}
							$query_ajout_lien_visite_taxon .=") ";
							
							$result_ajout_lien_visite_taxon = mysql_query($query_ajout_lien_visite_taxon, $connexion) or logError("CREATION LIEN VISITE / TAXON-".$query_ajout_lien_visite_taxon."-".mysql_error());
						
							if($result_ajout_lien_visite_taxon === false){
								$statut[] = "Erreur critique à la création du lien ".($i+1)." visite/taxon observé";
								$erreur = true;
							}
						
						}
						
					}else{
						$statut[] = "Erreur critique lors de la modification de la visite dans la nature";
						$erreur = true;
					}
				
				}else{
					$statut[] = "Erreur critique lors de la modification de la visite dans la nature";
					$erreur = true;
				}
				
			}
		
		}
		
		if(!$erreur){ // aucune erreur n'a été rencontrée jusqu'ici
			$statut[] = "Les informations de la visite dans la nature ont été modifiées";
			logAction("VISITE DANS NATURE (id: ".valueMax("CODEVISITEDANSNATURE", "visite_dans_nature", $connexion).") MODIFIEE par ".capitalise($GLOBALS['USER']['prenom'])." ".mb_strtoupper($GLOBALS['USER']['nom'])." (".$GLOBALS['USER']['login'].")");
		}
		
	}
?>
<?php
//------------------------------------------------------------ Affichage du statut si le formulaire a été envoyé

	if(isset($_POST['form_sent'])){ // si le formulaire est envoyé
		
		if($erreur){
			afficherStatut($statut, 3); // appel à la fonction afficherStatut() définie dans fonctions.php
		}else{
			afficherStatut($statut, 1); // appel à la fonction afficherStatut() définie dans fonctions.php
		}
	
	}

?>
<?php
	boutonRetour("index.php?p=gestion/visitedansnature_gere"); // // appel à la fonction boutonRetour() définie dans fonctions.php
?>
<div style="display: none"> <!-- une div masquée contenant les lignes de référence -->
	<div id="lg_tax_0" style="margin: 2px 0;">
		<select name="edt_taxon[]">
			<?php
				if($nb_taxons > 0){
					$old_famille = null;
					foreach($selectTaxons as $taxon){
						if($old_famille != $taxon['famille']){
							if(!is_null($old_famille === null)){
								echo "</optgroup>";
							}
							echo "<optgroup label=\"".htmlentities(capitalise($taxon['famille']), ENT_COMPAT, "UTF-8")."\">";
							$old_famille = $taxon['famille'];
						}
						echo "<option value=\"".$taxon['id']."\">".htmlentities(capitalise($taxon['genre']), ENT_NOQUOTES, "UTF-8")." ".htmlentities(capitalise($taxon['espece']), ENT_NOQUOTES, "UTF-8")." (".htmlentities(capitalise($taxon['variete']), ENT_NOQUOTES, "UTF-8").")</option>";
					}
					unset($taxon);
					echo "</optgroup>";
				}else{
					echo "<option disabled=\"disabled\">Aucun taxon</option>";
				}
			?>
		</select>
		, <label>à l'état</label>
		<select name="edt_etat[]">
			<?php
				if($nb_etats > 0){
					foreach($selectEtats as $etat){
						echo "<option value=\"".$etat['id']."\">".htmlentities(mb_strtolower($etat['nom']), ENT_NOQUOTES, "UTF-8")."</option>";
					}
					unset($etat);
				}else{
					echo "<option disabled=\"disabled\">Aucun état</option>";
				}
			?>
		</select>
		-
		<label>pop. :</label>
		<input type="text" name="edt_population[]" size="3" value="" /> (pop. facultative)
		<img id="btnLg_tax_0" class="boutonASLigne" src="images/moins.png" alt="-" title="Supprimer cette ligne" onclick="supprimerLigne(0, 'tax', 0);" />
	</div>
</div>
<form method="post" action="index.php?p=gestion/visitedansnature_edite&amp;id=<?php echo $_GET['id']; ?>">
	<table class="formulaire" style="margin-left: auto; margin-right: auto;">
		<tr>
			<th class="titre" colspan="2">Modification des informations d'une visite dans la nature</th>
		</tr>
		<tr>
			<th class="sous_titre" colspan="2">informations principales</th>
		</tr>
		<tr>
			<td style="width: 150px" class="etiquette">Date * :</td>
			<td style="width: 650px" class="champ">
				<?php
					if(!$recoltes){
				?>
						<select name="edt_date_jour">
				<?php
					}else{
				?>
						<input type="hidden" name="edt_date_jour" value="<?php echo $dv_date_jour; ?>" />
						<select name="edt_date_jour" disabled="disabled">
				<?php
					}
				?>
					<?php
						for($i=1; $i<=31; $i++){
							if($dv_date_jour == $i){
								echo "<option value=\"".$i."\" selected=\"selected\">".$i."</option>";
							}else{
								echo "<option value=\"".$i."\">".$i."</option>";
							}
						}
					?>
				</select>
				<?php
					if(!$recoltes){
				?>
						<select name="edt_date_mois">
				<?php
					}else{
				?>
						<input type="hidden" name="edt_date_mois" value="<?php echo $dv_date_mois; ?>" />
						<select name="edt_date_mois" disabled="disabled">
				<?php
					}
				?>
					<option value="1" <?php if($dv_date_mois == 1) echo "selected=\"selected\""; ?>>Janvier</option>
					<option value="2" <?php if($dv_date_mois == 2) echo "selected=\"selected\""; ?>>Février</option>
					<option value="3" <?php if($dv_date_mois == 3) echo "selected=\"selected\""; ?>>Mars</option>
					<option value="4" <?php if($dv_date_mois == 4) echo "selected=\"selected\""; ?>>Avril</option>
					<option value="5" <?php if($dv_date_mois == 5) echo "selected=\"selected\""; ?>>Mai</option>
					<option value="6" <?php if($dv_date_mois == 6) echo "selected=\"selected\""; ?>>Juin</option>
					<option value="7" <?php if($dv_date_mois == 7) echo "selected=\"selected\""; ?>>Juillet</option>
					<option value="8" <?php if($dv_date_mois == 8) echo "selected=\"selected\""; ?>>Aout</option>
					<option value="9" <?php if($dv_date_mois == 9) echo "selected=\"selected\""; ?>>Septembre</option>
					<option value="10" <?php if($dv_date_mois == 10) echo "selected=\"selected\""; ?>>Octobre</option>
					<option value="11" <?php if($dv_date_mois == 11) echo "selected=\"selected\""; ?>>Novembre</option>
					<option value="12" <?php if($dv_date_mois == 12) echo "selected=\"selected\""; ?>>Décembre</option>
				</select>
				<?php
					if(!$recoltes){
				?>
						<input type="text" name="edt_date_annee" size="4" value="<?php echo htmlentities($dv_date_annee, ENT_COMPAT, "UTF-8"); ?>" />
				<?php
					}else{
				?>
						<input type="text" name="edt_date_annee" size="4" value="<?php echo htmlentities($dv_date_annee, ENT_COMPAT, "UTF-8"); ?>" readonly="readonly" />
				<?php
					}
				?>
			</td>
		</tr>
		<tr>
			<td class="etiquette">Milieu * :</td>
			<td class="champ">
				<select name="edt_milieu">
					<?php
						if($nb_milieux > 0){
							foreach($selectMilieux as $milieu){
								if($milieu['id'] == $dv_milieu){
									echo "<option value=\"".$milieu['id']."\" selected=\"selected\">".htmlentities(mb_strtolower($milieu['nom']), ENT_NOQUOTES, "UTF-8")."</option>";
								}else{
									echo "<option value=\"".$milieu['id']."\">".htmlentities(mb_strtolower($milieu['nom']), ENT_NOQUOTES, "UTF-8")."</option>";
								}
							}
							unset($milieu);
						}else{
							echo "<option disabled=\"disabled\">Aucun milieu enregistré</option>";
						}
					?>
				</select>
				<input type="button" value="Ajouter un milieu" onclick="popup('popup.php?p=gestion/milieubiologique_ajoute_popup&amp;maj=edt_milieu&amp;sel=1', 400, 300);" />
			</td>
		</tr>
		<tr>
			<td class="etiquette">Lieu :</td>
			<td class="champ">
				<select id="edt_commune" name="edt_commune">
					<option value="none">Aucune commune</option>
					<optgroup label="Communes :">
						<?php
							if($nb_communes > 0){
								foreach($selectCommunes as $commune){
									if($commune['id'] == $dv_commune){
										echo "<option value=\"".$commune['id']."\" selected=\"selected\">".htmlentities(capitalise($commune['commune']), ENT_NOQUOTES, "UTF-8")." (".htmlentities(mb_strtoupper($commune['pays']), ENT_NOQUOTES, "UTF-8").")</option>";
									}else{
										echo "<option value=\"".$commune['id']."\">".htmlentities(capitalise($commune['commune']), ENT_NOQUOTES, "UTF-8")." (".htmlentities(mb_strtoupper($commune['pays']), ENT_NOQUOTES, "UTF-8").")</option>";
									}
								}
								unset($commune);
							}else{
								echo "<option disabled=\"disabled\">Aucune commune enregistrée</option>";
							}
						?>
					</optgroup>
				</select>
				<input type="text" class="recherche" id="srch_commune" style="vertical-align: top;" value="recherche..." size="10" onfocus="clearField('srch_commune', 'recherche...');" onblur="resetField('srch_commune', 'recherche...');" onkeyup="trierSelect('edt_commune', 'srch_commune');" />
			</td>
		</tr>
		<tr>
			<td class="etiquette">Description :</td>
			<td class="champ"><textarea name="edt_description" rows="4" cols="25"><?php echo htmlentities($dv_description, ENT_NOQUOTES, "UTF-8"); ?></textarea></td>
		</tr>
		<tr>
			<th class="sous_titre" colspan="2">rapport de visite</th>
		</tr>
		<tr>
			<td class="etiquette">Rapport :</td>
			<td class="champ"><textarea name="edt_rapport" rows="7" cols="45"><?php echo htmlentities($dv_rapport, ENT_NOQUOTES, "UTF-8"); ?></textarea></td>
		</tr>
		<tr>
			<td class="etiquette">Taxon(s) observé(s) :</td>
			<td class="champ">
				<div class="cadre-entete">Ajouter une ligne : <img class="boutonASLigne" src="images/plus.png" alt="+" title="Ajouter une ligne" onclick="ajouterLigne(0, 'tax', 0);" /></div>
				<div style="float: left; margin-left: 5px;"><input type="button" class="petit" value="Ajouter un état" onclick="popup('popup.php?p=gestion/etatphenologique_ajoute_popup&amp;maj=edt_etat[]', 400, 290);" /></div>
				<div class="cadre-contenu" id="lstLg_tax">
					<?php
						$nbLignes = count($dv_taxon);
						$i=0;
						foreach($dv_taxon as $id => $value){
					?>
							<div id="lg_tax_<?php echo $i+1; ?>" style="margin: 2px 0;">
								<select name="edt_taxon[]">
									<?php
										if($nb_taxons > 0){
											$old_famille = null;
											foreach($selectTaxons as $taxon){
												if($old_famille != $taxon['famille']){
													if(!is_null($old_famille === null)){
														echo "</optgroup>";
													}
													echo "<optgroup label=\"".htmlentities(capitalise($taxon['famille']), ENT_COMPAT, "UTF-8")."\">";
													$old_famille = $taxon['famille'];
												}
												if($taxon['id'] == $dv_taxon[$id]){
													echo "<option value=\"".$taxon['id']."\" selected=\"selected\">".htmlentities(capitalise($taxon['genre']), ENT_NOQUOTES, "UTF-8")." ".htmlentities(capitalise($taxon['espece']), ENT_NOQUOTES, "UTF-8")." (".htmlentities(capitalise($taxon['variete']), ENT_NOQUOTES, "UTF-8").")</option>";
												}else{
													echo "<option value=\"".$taxon['id']."\">".htmlentities(capitalise($taxon['genre']), ENT_NOQUOTES, "UTF-8")." ".htmlentities(capitalise($taxon['espece']), ENT_NOQUOTES, "UTF-8")." (".htmlentities(capitalise($taxon['variete']), ENT_NOQUOTES, "UTF-8").")</option>";
												}
											}
											unset($taxon);
											echo "</optgroup>";
										}else{
											echo "<option disabled=\"disabled\">Aucun taxon</option>";
										}
									?>
								</select>
								, <label>à l'état</label>
								<select name="edt_etat[]">
									<?php
										if($nb_etats > 0){
											foreach($selectEtats as $etat){
												if($etat['id'] == $dv_etat[$id]){
													echo "<option value=\"".$etat['id']."\" selected=\"selected\">".htmlentities(mb_strtolower($etat['nom']), ENT_NOQUOTES, "UTF-8")."</option>";
												}else{
													echo "<option value=\"".$etat['id']."\">".htmlentities(mb_strtolower($etat['nom']), ENT_NOQUOTES, "UTF-8")."</option>";
												}
											}
											unset($etat);
										}else{
											echo "<option disabled=\"disabled\">Aucun état</option>";
										}
									?>
								</select>
								-
								<label>pop. :</label>
								<input type="text" name="edt_population[]" size="3" value="<?php echo htmlentities($dv_population[$id], ENT_COMPAT, "UTF-8"); ?>" /> (pop. facultative)
								<?php
									if(in_array($dv_taxon[$id], $taxonsRecoltes)){
										echo "<img src=\"images/recolte.gif\" alt=\"[récolté]\"/>";
									}
								?>
								<img id="btnLg_tax_<?php echo $i; ?>" class="boutonASLigne" src="images/moins.png" alt="-" title="Supprimer cette ligne" onclick="supprimerLigne(<?php echo $i+1; ?>, 'tax', 0);" />
							</div>
					<?php
							$i++;					
						}
						unset($id);
						unset($value);
					?>
				</div>
				<input type="hidden" id="nbLg_tax" name="edt_nbTaxons" value="<?php echo $nbLignes; ?>" />
			</td>
		</tr>
		<tr>
			<th class="sous_titre" colspan="2">informations complémentaires</th>
		</tr>
		<tr>
			<td class="etiquette">Position GPS :</td>
			<td class="champ">
				<label>X :</label> <input type="text" name="edt_gps_x" size="3" value="<?php echo htmlentities($dv_gps_x, ENT_COMPAT, "UTF-8"); ?>" />
				<label>Y :</label> <input type="text" name="edt_gps_y" size="3" value="<?php echo htmlentities($dv_gps_y, ENT_COMPAT, "UTF-8"); ?>" />
				<label>Z :</label> <input type="text" name="edt_gps_z" size="3" value="<?php echo htmlentities($dv_gps_z, ENT_COMPAT, "UTF-8"); ?>" /> (Z facultatif)
			</td>
		</tr>
		<tr>
			<td class="etiquette">Commentaire :</td>
			<td class="champ"><textarea name="edt_commentaire" rows="2" cols="25"><?php echo htmlentities($dv_commentaire, ENT_COMPAT, "UTF-8"); ?></textarea></td>
		</tr>
		<tr>
			<td class="envoi" colspan="2"><input type="submit" value="Modifier" /><input type="hidden" name="form_sent" value="1" /></td>
		</tr>
		<tr>
			<td class="legende" colspan="2">* = champs obligatoires</td>
		</tr>
	</table>
</form>
<div class="information">
	<div class="titre">Légende</div>
	<p><img src="images/recolte.gif" alt="[récolté]" /> : le taxon a été récolté</p>
</div>
<div class="information">
	<div class="titre">Informations</div>
	<h4>Population de taxons observés :</h4>
	<p>Indiquez si possible le nombre approximatif de représentant du taxon observé, au cours de la visite. Si vous n'en avez aucune idée, laissez le champ vide.</p>
	<h4>Taxon(s) recolté(s) :</h4>
	<p>Si un taxon a été récolté, il ne peut être effacé (si ce taxon a été observé à plusieurs états, il doit au moins en rester un).</p>
	<h4>Champs vérouillés :</h4>
	<p>Si des végétaux ont été récoltés suite à cette visite, vous ne pouvez pas changer la date de celle-ci.</p>
</div>
<?php
//------------------------------------------------------------ Accès refusé à la page

			}else{
				afficherStatut("La visite dans la nature à éditer n'existe pas", 3); // appel à la fonction afficherStatut() définie dans fonctions.php
			}

		}else{
			afficherStatut("La visite dans la nature à éditer n'est pas ou mal indiquée", 3); // appel à la fonction afficherStatut() définie dans fonctions.php
		}

	}else{
		if(isset($_SESSION)){
			if(!isset($_SESSION['user_id'])){ // si l'utilisateur n'est pas connecté
				include("pages/connexion.php");
			}else{ // si l'utilisateur est connecté et qu'il n'a pas accès à la page, c'est qu'il n'a pas le droit d'utilisation nécessaire
				include("pages/401.htm");
			}
		}
	}

?>